package com.cloud.drore.eboss.supplier.service;

import com.cloud.drore.eboos.common.base.PagePo;
import com.cloud.drore.eboos.common.base.ResultMessage;
import com.cloud.drore.eboos.common.entity.supplier.Ticket;
import com.cloud.drore.eboos.common.entity.supplier.TicketPrice;
import com.cloud.drore.eboos.common.entity.supplier.TicketStock;
import com.cloud.drore.eboos.common.entity.supplier.po.TicketQueryPo;
import com.cloud.drore.eboos.common.entity.supplier.vo.TicketAllVo;
import com.cloud.drore.eboos.exception.BusinessException;
import com.cloud.drore.eboss.supplier.entity.po.ProductInfoResponsePo;
import com.cloud.drore.eboss.supplier.entity.po.SupplierTicketUpdPo;
import com.github.pagehelper.PageInfo;

import java.util.List;


/**
 * 浙江卓锐科技股份有限公司 版权所有  Copyright 2018<br>
 *
 * @Description: <br>
 * @Project: eboos <br>
 * @CreateDate: Created in 2018/1/8 10:41 <br>
 * @Author: <a href="575842778@qq.com">郑永涛</a>
 */
public interface ITicketService {

    PageInfo findTicketByParam(PagePo<TicketQueryPo> pagePo) throws BusinessException;

    List<TicketAllVo> findTicketByParamDealer(PagePo<TicketQueryPo> pagePo) throws BusinessException;

    List<TicketAllVo> findTicketByParamSupplier(PagePo<TicketQueryPo> pagePo) throws BusinessException;

    ResultMessage insertTicket(Ticket ticketInfo, TicketPrice ticketPrice) throws BusinessException;

    ResultMessage updateTicket(Ticket ticketInfo, TicketPrice ticketPrice, List<TicketStock> ticketStock) throws BusinessException;

    ResultMessage updateTicketSupplier(SupplierTicketUpdPo supplierTicketUpdPo) throws BusinessException;

    ResultMessage selectTicketById(Long ticketId) throws BusinessException;

    ResultMessage selectTicketByIdSupplier(Long ticketId) throws BusinessException;

    ResultMessage updateStatus(Long id, String status, Long id1);

    ResultMessage rejectProduct(Long id, String status, String rejectReason);

    ResultMessage init();

    TicketAllVo selectTicketByProNum(String productNum);

    ResultMessage selectRejectInfoByProId(Long commonId)throws BusinessException;

    ResultMessage<ProductInfoResponsePo> synchronizeProduct(String productCode) throws BusinessException;

    ResultMessage isCodeUnique(String productCode) throws BusinessException;

    void updateExpiredTicket();
}
